package com.ruoyi.system.domain.dto;

import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @author nanyang
 */
public class TProjectDto {

    @Data
    @ApiModel("新增项目")
    public static class Insert {
        @NotNull(message = "项目编号不能为空")
        @ApiModelProperty("项目编号")
        @Excel(name = "项目编号")
        private String projectNum;
        @NotNull(message = "项目名称不能为空")
        @ApiModelProperty("项目名称")
        @Excel(name = "项目名称")
        private String topicName;
        @NotNull(message = "项目简称不能为空")
        @ApiModelProperty("项目简称")
        @Excel(name = "项目简称")
        private String topicShortName;
        @ApiModelProperty("类型")
        private Byte type;
        @NotNull(message = "请选择类别")
        @ApiModelProperty("类别")
        private String category;
        @ApiModelProperty("牵头单位")
        private String leadingUnit;
        @ApiModelProperty("负责人")
        private String person;
        @ApiModelProperty("状态（0正常 1暂停）")
        private Byte status;
//        @ApiModelProperty("上报省平台状态（0未上报  1已上报）")
//        private Byte sptStatus;
//        @ApiModelProperty("上报脑防委状态（0未上报  1已上报）")
//        private Byte nfwStatus;
        @ApiModelProperty("附件地址")
        private String file;
        @ApiModelProperty("项目开始时间")
        private Date startTime;
        @ApiModelProperty("项目结束时间")
        private Date endTime;
        @ApiModelProperty("立项年度")
        private String projectYear;
        @ApiModelProperty("负责人科室")
        private String chargeDept;
        @ApiModelProperty("负责人邮箱")
        private String chargeEmail;
        @ApiModelProperty("负责人职务")
        private String chargePost;
        @ApiModelProperty("负责人手机号")
        private String chargePhone;
    }

    @Data
    @ApiModel("修改项目")
    public static class Update {
        @ApiModelProperty("ID")
        private Long id;
        @ApiModelProperty("项目编号")
        private String projectNum;
        @ApiModelProperty("项目名称")
        private String topicName;
        @ApiModelProperty("项目简称")
        private String topicShortName;
        @ApiModelProperty("类型")
        private Byte type;
        @ApiModelProperty("类别")
        private String category;
        @ApiModelProperty("牵头单位")
        private String leadingUnit;
        @ApiModelProperty("负责人")
        private String person;
        @ApiModelProperty("状态（0正常 1暂停）")
        private Byte status;
        @ApiModelProperty("上报省平台状态（0未上报  1已上报）")
        private Byte sptStatus;
        @ApiModelProperty("上报脑防委状态（0未上报  1已上报）")
        private Byte nfwStatus;
        @ApiModelProperty("附件地址")
        private String file;
        @ApiModelProperty("项目开始时间")
        private Date startTime;
        @ApiModelProperty("项目结束时间")
        private Date endTime;
        @ApiModelProperty("立项年度")
        private String projectYear;
        @ApiModelProperty("负责人科室")
        private String chargeDept;
        @ApiModelProperty("负责人邮箱")
        private String chargeEmail;
        @ApiModelProperty("负责人职务")
        private String chargePost;
        @ApiModelProperty("负责人手机号")
        private String chargePhone;
    }

    @Data
    @ApiModel("删除项目")
    public static class Delete {
        @ApiModelProperty("删除ID")
        private List<Long> idList;
    }

    @Data
    @ApiModel("查询项目类别")
    public static class QueryCategory {
        @ApiModelProperty("项目类别")
        private String name;
    }
    @Data
    @ApiModel("查询项目")
    public static class Query {
        @ApiModelProperty("项目编号")
        private String projectNum;
        @ApiModelProperty("项目名称")
        private String topicName;
        @ApiModelProperty("项目简称")
        private String topicShortName;
        @ApiModelProperty("类型")
        private Byte type;
        @ApiModelProperty("类别")
        private String category;
        @ApiModelProperty("牵头单位")
        private String leadingUnit;
        @ApiModelProperty("负责人")
        private String person;
        @ApiModelProperty("状态（0正常 1暂停）")
        private Byte status;
        @ApiModelProperty("上报省平台状态（0未上报  1已上报）")
        private Byte sptStatus;
        @ApiModelProperty("上报脑防委状态（0未上报  1已上报）")
        private Byte nfwStatus;
    }

    @Data
    @ApiModel("TProjectDto - QueryByNum")
    public static class QueryByNum{
        @NotNull(message = "项目编号不能为空")
        @ApiModelProperty("项目编号")
        private String projectNum;
    }

    @Data
    @ApiModel("TProjectDto - CategoryAdd")
    public static class CategoryAdd{
        @ApiModelProperty("ID")
        private Long id;
        @NotNull(message = "名称不能为空")
        @ApiModelProperty("名称")
        private String name;
        @ApiModelProperty("父级ID")
        private String parentId;
    }
}
